package com.navicoa.e_libreria.presentacion;

import com.navicoa.e_libreria.presentacion.comandos.ComandoBasico;
import com.navicoa.e_libreria.presentacion.comandos.ComandoNulo;
import com.navicoa.e_libreria.presentacion.comandos.libros.ComandoAltaLibro;
import com.navicoa.e_libreria.presentacion.comandos.libros.ComandoModificacionLibro;
import com.navicoa.e_libreria.presentacion.comandos.libros.ComandoVerLibros;
import com.navicoa.e_libreria.presentacion.comandos.usuarios.ComandoAltaNuevoCliente;
import com.navicoa.e_libreria.presentacion.comandos.usuarios.ComandoAltaNuevoTrabajador;
import com.navicoa.e_libreria.presentacion.comandos.usuarios.ComandoModificarUsuario;
import com.vaadin.ui.MenuBar;

public class Menu extends MenuBar{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	//Comando null
	private ComandoNulo comandoNulo;
	
	//Para opciones Menu Principal sin SubMenu
	private ComandoBasico comandoBasico;
	
	//Opciones de Usuarios
	private ComandoModificarUsuario comandoModificacionUsuario;
	
		//Opciones de Alta nueva de Usuario:
		private ComandoAltaNuevoCliente comandoAltaCliente;
		private ComandoAltaNuevoTrabajador comandoAltaTrabajador;
		
		//Opciones de Nominas
		
	//Opciones de Proveedores
		
	//Opciones de Libros
	private ComandoAltaLibro comandoAltaLibro;
	private ComandoModificacionLibro comandoModificacionLibro;
		
		//Opciones de Ver Libros
		private ComandoVerLibros comandoVerLibros;
		
	//Opciones de Pedidos Entrada
		
	//Opciones de Pedidos Salida
	
	public Menu(VistaMain vM){
		comandoNulo = new ComandoNulo(vM);
		
		comandoBasico = new ComandoBasico(vM);
		
		comandoModificacionUsuario = new ComandoModificarUsuario(vM);

		comandoAltaCliente = new ComandoAltaNuevoCliente(vM);
		comandoAltaTrabajador = new ComandoAltaNuevoTrabajador(vM);
		
		comandoAltaLibro = new ComandoAltaLibro(vM);
		comandoModificacionLibro = new ComandoModificacionLibro(vM);
		
		comandoVerLibros = new ComandoVerLibros(vM);
		
		this.addItem("Inicio", null, comandoBasico);
		MenuBar.MenuItem usu = this.addItem("Usuarios", null, null);
		MenuBar.MenuItem pro = this.addItem("Proveedores", null, null);
		MenuBar.MenuItem lib = this.addItem("Libros", null, null);
		MenuBar.MenuItem pEn = this.addItem("Pedidos Entrada", null, null);
		MenuBar.MenuItem pSa = this.addItem("Pedidos Salida", null, null);
		this.addItem("Estadisticas", null, comandoBasico);
		
		//Opciones de usuarios:
		MenuBar.MenuItem altaUser = usu.addItem("Alta nueva de Usuario", null);
		usu.addItem("Modificacion / Borrado", comandoModificacionUsuario);
		usu.addSeparator();
		MenuBar.MenuItem nom = usu.addItem("Nominas", null);

		altaUser.addItem("Cliente", comandoAltaCliente);
		altaUser.addItem("Trabajador", comandoAltaTrabajador);
		
		nom.addItem("Calcular", comandoNulo);
		
		//Opciones de Proveedores
		pro.addItem("Alta", comandoNulo);
		pro.addItem("Modificacion / Borrado", comandoNulo);
		
		//Opciones de Libros
		lib.addItem("Alta", comandoAltaLibro);
		lib.addItem("Modificacion", comandoModificacionLibro);
		
		lib.addSeparator();
		
		lib.addItem("Ver Libros", comandoVerLibros);
		
		//Opciones de Pedidos de Entrada
		pEn.addItem("Alta", comandoNulo);
		pEn.addItem("Modificacion", comandoNulo);
		pEn.addSeparator();
		pEn.addItem("Fase 2", comandoNulo);
		
		//Opciones de Pedidos de Salida
		pSa.addItem("Nuevo Pedido", comandoNulo);
		pSa.addSeparator();
		pSa.addItem("Visualizar Pedidos", comandoNulo);
	}
}
